#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 编写一个装饰器，自动打印被装饰函数的运行时长  
# 如果函数内部抛出异常,捕获这个异常，计算出运行时长并打印后再次抛出异常。
# 当函数运行时长过长(超过5秒)时，多打印一句话：[函数名]运行时间过长，请进行性能调优。
import time

def timeit(func):
    def wrapper(*args, **kwargs):
        t1 = time.time()
        try:
            ret = func(*args, **kwargs)
        except Exception as e:
            t2  = time.time()
            t = t2 - t1
            if t > 5:
                print(f"[{func.__name__}]运行时间过长，请进行性能调优")
            raise e

        t2 = time.time()
        t = t2 - t1
        if t > 5:
            print(f"[{func.__name__}]运行时间过长，请进行性能调优")
        return ret
    return wrapper
